package com.fwmagic.spark.core.action

import org.apache.spark.{SparkConf, SparkContext}

/**
  * 通过函数func聚集数据集中的所有元素，并且可以给定一个初始值，这个函数必须是关联性的，确保可以被正确的并发执行
  */
object FoldDemo {
    def main(args: Array[String]): Unit = {
        val conf = new SparkConf()
                .setAppName(this.getClass.getSimpleName)
                .setMaster("local[*]")

        val sc = new SparkContext(conf)

        val rdd1 = sc.makeRDD(1 to 10)

        val sum: Int = rdd1.fold(0)((x, y) => x + y)

        println(sum)

        sc.stop()
    }
}
